// bg-settings.js
const app = getApp()

Page({
  data: {
    currentBgImage: null,
    selectedPreset: null,
    tempImageUrl: null,
    showCropModal: false,
    
    // 预设背景列表
    presetBackgrounds: [
      {
        id: 'nature1',
        name: '自然风景',
        url: '/images/backgrounds/nature1.jpg'
      },
      {
        id: 'nature2',
        name: '山水画',
        url: '/images/backgrounds/nature2.jpg'
      },
      {
        id: 'abstract1',
        name: '抽象艺术',
        url: '/images/backgrounds/abstract1.jpg'
      },
      {
        id: 'abstract2',
        name: '几何图案',
        url: '/images/backgrounds/abstract2.jpg'
      }
    ]
  },

  onLoad() {
    this.loadCurrentBackground()
  },

  onShow() {
    this.loadCurrentBackground()
  },

  // 加载当前背景
  loadCurrentBackground() {
    try {
      const bgImage = wx.getStorageSync('welcomeBgImage')
      this.setData({
        currentBgImage: bgImage || null
      })
    } catch (error) {
      console.error('加载当前背景失败:', error)
    }
  },

  // 选择图片
  chooseImage() {
    wx.chooseMedia({
      count: 1,
      mediaType: ['image'],
      sourceType: ['album'],
      success: (res) => {
        const tempFilePath = res.tempFiles[0].tempFilePath
        this.setData({
          tempImageUrl: tempFilePath,
          showCropModal: true
        })
      },
      fail: (error) => {
        console.error('选择图片失败:', error)
        wx.showToast({
          title: '选择图片失败',
          icon: 'error'
        })
      }
    })
  },

  // 拍摄照片
  takePhoto() {
    wx.chooseMedia({
      count: 1,
      mediaType: ['image'],
      sourceType: ['camera'],
      success: (res) => {
        const tempFilePath = res.tempFiles[0].tempFilePath
        this.setData({
          tempImageUrl: tempFilePath,
          showCropModal: true
        })
      },
      fail: (error) => {
        console.error('拍摄照片失败:', error)
        wx.showToast({
          title: '拍摄照片失败',
          icon: 'error'
        })
      }
    })
  },

  // 使用默认背景
  useDefaultBg() {
    wx.showModal({
      title: '确认操作',
      content: '确定要恢复默认渐变背景吗？',
      success: (res) => {
        if (res.confirm) {
          this.clearBackground()
        }
      }
    })
  },

  // 选择预设背景
  selectPreset(e) {
    const preset = e.currentTarget.dataset.preset
    this.setData({
      selectedPreset: preset.id
    })
    
    // 预览预设背景
    this.previewBackground(preset.url)
  },

  // 预览背景
  previewBackground(imageUrl) {
    wx.showModal({
      title: '预览背景',
      content: '确定要使用这个背景吗？',
      success: (res) => {
        if (res.confirm) {
          this.setBackground(imageUrl)
        }
      }
    })
  },

  // 设置背景
  setBackground(imageUrl) {
    try {
      // 保存到本地存储
      wx.setStorageSync('welcomeBgImage', imageUrl)
      
      // 更新页面数据
      this.setData({
        currentBgImage: imageUrl,
        selectedPreset: null
      })
      
      // 通知首页更新背景
      this.notifyHomePageUpdate(imageUrl)
      
      wx.showToast({
        title: '背景已设置',
        icon: 'success'
      })
    } catch (error) {
      console.error('设置背景失败:', error)
      wx.showToast({
        title: '设置失败',
        icon: 'error'
      })
    }
  },

  // 清除背景
  clearBackground() {
    try {
      // 从本地存储移除
      wx.removeStorageSync('welcomeBgImage')
      
      // 更新页面数据
      this.setData({
        currentBgImage: null,
        selectedPreset: null
      })
      
      // 通知首页更新背景
      this.notifyHomePageUpdate(null)
      
      wx.showToast({
        title: '已恢复默认背景',
        icon: 'success'
      })
    } catch (error) {
      console.error('清除背景失败:', error)
      wx.showToast({
        title: '清除失败',
        icon: 'error'
      })
    }
  },

  // 通知首页更新背景
  notifyHomePageUpdate(imageUrl) {
    // 通过全局事件总线通知首页
    if (app.globalData.eventBus) {
      app.globalData.eventBus.emit('updateWelcomeBackground', imageUrl)
    }
  },

  // 确认裁剪
  confirmCrop() {
    if (this.data.tempImageUrl) {
      this.setBackground(this.data.tempImageUrl)
      this.closeCropModal()
    }
  },

  // 关闭裁剪弹窗
  closeCropModal() {
    this.setData({
      showCropModal: false,
      tempImageUrl: null
    })
  },

  // 重置设置
  resetSettings() {
    wx.showModal({
      title: '确认重置',
      content: '确定要重置所有背景设置吗？这将恢复默认背景。',
      success: (res) => {
        if (res.confirm) {
          this.clearBackground()
        }
      }
    })
  },

  // 保存设置
  saveSettings() {
    wx.showToast({
      title: '设置已保存',
      icon: 'success'
    })
    
    // 延迟返回上一页
    setTimeout(() => {
      wx.navigateBack()
    }, 1500)
  },

  // 阻止事件冒泡
  stopPropagation() {
    // 阻止事件冒泡
  }
}) 